import os
import sys
import logging
from dotenv import load_dotenv

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 加载环境变量
load_dotenv()

# 配置日志
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

from src.video_analyzer import VideoAnalyzer

def verify_api_connection():
    """验证API连接修复"""
    print("\n=== 验证智谱API连接修复 ===")
    
    # 初始化视频分析器
    analyzer = VideoAnalyzer()
    
    print(f"使用模型: {analyzer.model_name}")
    print(f"API URL: {analyzer.api_url}")
    
    # 使用简单的测试图像而不是视频（更轻量级）
    # 这里使用一个假的图像路径，主要测试API调用格式而非实际分析
    test_image_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data", "test_image.jpg")
    
    if not os.path.exists(test_image_path):
        # 如果测试图像不存在，创建一个简单的文本消息进行API连接测试
        print("测试图像不存在，进行API连接测试...")
        
        # 直接测试API连接（绕过文件处理）
        try:
            import requests
            
            # 构建一个简单的文本请求
            payload = {
                "model": analyzer.model_name,
                "messages": [
                    {
                        "role": "user",
                        "content": [{"type": "text", "text": "你好，这是一个API连接测试"}]
                    }
                ],
                "temperature": 0.7,
                "max_tokens": 100
            }
            
            response = requests.post(
                analyzer.api_url,
                headers=analyzer.headers,
                json=payload,
                timeout=analyzer.timeout
            )
            
            print(f"API连接测试 - 状态码: {response.status_code}")
            
            if response.status_code == 200:
                print("✓ API连接成功！模型名称大小写和请求格式问题已修复")
            elif response.status_code == 400:
                print(f"✗ API返回400错误: {response.text}")
                print("请检查API密钥和模型名称是否正确")
            elif response.status_code == 401:
                print(f"✗ API返回401错误: {response.text}")
                print("请检查API密钥是否正确")
            else:
                print(f"✗ API返回错误: {response.status_code} - {response.text}")
                
        except Exception as e:
            print(f"✗ API连接测试异常: {str(e)}")
    else:
        print(f"使用测试图像: {test_image_path}")
        print("注意：这将调用完整的视频分析流程")

if __name__ == "__main__":
    verify_api_connection()
    print("\n修复验证完成。主要修复了两个问题：")
    print("1. 模型名称不再转换为小写，保持原始大小写格式")
    print("2. 使用更安全的json.loads代替eval来解析API响应")